package com.cloudbroker.bcs.platform.dav.bizapi.t2service.operate;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew.IFSOperateFans;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.PageVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.adpage.result.AdpageListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.adpage.result.BrokerListData;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.adpage.result.TenantListData;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.LoginFormBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.SuggestionBackList;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.UserCountBackForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.BrokerRegForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.UserCountForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.result.OperateBranchListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.result.OperateGetFansBackResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.vo.AdpageListOperateForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.vo.AdpageUpdateOperateParam;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.vo.BranchNoForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.vo.OperateFansBlockForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.vo.OperateFansGagForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.operate.vo.OperateGetFansForm;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

/**
 * Created by wangxu13798 on 2016/8/17.
 */
@ServiceModule
public interface OperateFansT2BizService {
    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_GET_FANS, desc = "运营端查询粉丝列表")
    public OperateGetFansBackResult funcOperateGetFans(@ServiceParam("param") OperateGetFansForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_FANS_GAG, desc = "运营端粉丝禁言/取消")
    public HSBCPSBackVO funcOperateFansGag(@ServiceParam("param") OperateFansGagForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_FANS_BLOCK, desc = "运营端粉丝拉黑/取消")
    public HSBCPSBackVO funcOperateFansBlock(@ServiceParam("param") OperateFansBlockForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_FANS_EXPORT, desc = "运营端查询粉丝列表导出")
    public OperateGetFansBackResult funcOperateFansExport(@ServiceParam("param") OperateGetFansForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_GET_BRANCH_LIST, desc = "获取归属地列表")
    public OperateBranchListResult funcGetBranchList(@ServiceParam("param") BranchNoForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_BROKER_REGISTER, desc = "运营端大V注册")
    public LoginFormBackForm funcOperateBrokerRegister(@ServiceParam("param") BrokerRegForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_BROKER_LIST, desc = "运营端获取大V列表")
    public BrokerListData funcOperateBrokerList(@ServiceParam("param") BranchNoForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_TENANT_LIST, desc = "运营端获取租户列表")
    public TenantListData funcOperateTenantList(@ServiceParam("param") BranchNoForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_ADPAGE_LIST, desc = "运营端获取广告页列表")
    public AdpageListResult funcOperateAdpageList(@ServiceParam("param") AdpageListOperateForm form);

    @Service(functionId = IFSFunctionIdsNew.IFSOperateFans.FUNC_OPERATE_ADPAGE_UPDATE, desc = "运营端广告页修改")
    public HSBCPSBackVO funcOperateAdpageUpdate(@ServiceParam("param") AdpageUpdateOperateParam form);
        
    @Service(functionId = IFSOperateFans.FUNC_SUGGESTION_LIST, desc = "意见列表")
    public SuggestionBackList funcSuggestionList(PageVO form);
    
    @Service(functionId = IFSOperateFans.FUNC_USER_COUNT, desc = "用户数据统计")
    public UserCountBackForm funcUserCount(UserCountForm form);
}
